A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the xerographic reproduction by anyone of the patent document or the patent disclosure in exactly the form it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention is generally related to the networking field and more particularly to techniques for providing application user interfaces (APIs) for controlling the functionality of network processors.
The communication industry has experienced explosive growth stemming from increased demand for information and connectivity by both individual consumers and corporations. Due to the proliferation of the personal computer and the rise of communication networks, such as the Internet, there is an ever increasing need for faster communication between computers using efficient networks. In order to accommodate this explosive growth, carriers and backbone providers are rapidly introducing network infrastructures which offer exponentially more bandwidth and information carrying capacity than in the past.
In order to meet the growing demand for speed and bandwidth, network devices such as client computer systems, servers, hubs, routers, switches, network backbones, network processors, etc., are being forced to offer a wide range of services to meet consumer demands. These network processors have to be capable of supporting a plethora of emerging communication standards, transport protocols, and increased performance requirements. These network processors also have to perform a plurality of tasks such as performing translation between different network standards such as Ethernet and Asynchronous Transfer Mode (ATM), reformatting of data, traffic scheduling, routing of data cells, packets, messages, etc.
Although network processors now provide more services, the success or failure of these network processors depends largely on how easily they can be integrated with and controlled by a host device such as a computer. Due to the differing requirements of host applications, it is desired that the network processors provide facilities to perform control functions and network management functions both at a higher level of control and also at a more granular device level. Further, it is desired that the network processors provide facilities allowing host applications to make full use of the resources and services offered by the various existing and emerging networking standards.
According to the teachings of the present invention, techniques are provided for controlling the functionality of a network processor and for facilitating integration of the network processor with a host system or an application executing on the host system. The present invention provides application programming interfaces (APIs) which can be invoked by the host system or the host application for performing functions on the network processor. The APIs provided by the present invention allow a host to efficiently use resources and services offered by the network processor.
According to an aspect of the present invention, APIs are provided for controlling the network processor at a device level. These APIs offer fine-grained control of the network processor. In one embodiment, these APIs are provided by a device control module which may execute either on the host system or on the network processor. A host application may invoke an API and the function corresponding to the invoked API is performed by the network processor. Responses or results from the function execution may then be forwarded by the network processor to the host application.
According to another aspect of the present invention, APIs are provided for performing a plurality of device level functions. Examples of these functions include rest and initialization functions, configuration functions, diagnostic functions, buffer management functions, functions for handling virtual connections, functions for receiving and transmitting packets, dynamic memory access functions, and functions for controlling physical devices.
Other aspects and advantages of the invention will be better understood by reference to the following detailed description and the accompanying figures.